This disclosure generally relates to location services in various wireless communication systems, such as Global System for Mobile communication (GSM), Code Division Multiple Access (CDMA), and Universal Mobile Telecommunication System (UMTS) networks. Further, this disclosure relates to user plane location approaches in core networks and complementary access networks.
Network operators are increasingly providing location services for determining estimated geographic locations or positions of mobile devices, such as cellular telephones, personal digital assistants (PDAs), and the like. Location determination may be performed, for example, using positioning measurements from Global Navigation Satellite System (GNSS) satellites (for mobile devices equipped with GNSS receivers) and/or terrestrial positioning systems. GNSS includes any satellite positioning system configured to provide geographic locations of receivers using a constellation of satellites, such as Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), Galileo and COMPASS Navigation Satellite System (BeiDou). Terrestrial positioning systems may be based on any type of range measurements, such as uplink-time difference of arrival (U-TDOA) or timing advance (TA) measurements (e.g., in GSM networks), round-trip time (RTT) measurements (e.g., in UMTS networks), enhanced observed time difference (E-OTD) measurements, angle of arrival (AoA) measurements, power of arrival (POA) measurements, WiFi measurements, DTV signals and the like.
The estimated location of a mobile device may be determined based on certain predetermined conditions, referred to as “conditional triggers.” Conditional triggers may correspond to occurrence of various trigger events, such as the mobile device entering or leaving a specified area, or the passing of a specified period of time. Position data is then provided by the mobile device and/or the location of the mobile device is determined upon occurrence of one or more of the trigger events.
Various protocols have been developed to enable communication with mobile devices, including Secure User Plane Location (SUPL) protocol of the Open Mobile Alliance (OMA), as described, for example, in “Secure User Plane Location Architecture,” Candidate Version 2.0, OMA-AD-SUPL-V2—0-20091208-C (Dec. 8, 2009), the subject matter of which is hereby incorporated by reference. SUPL provides location services through the user plane, enabling the transfer of position data from a mobile device, referred to as a SUPL Enabled Terminal (SET), over a user plane bearer, such as internet protocol (IP), for determination of the geographical location of the SET. The SUPL protocol defines a Location User Plane (Lup) Reference Point and corresponding interface between a SUPL Location Platform (SLP) and the SET, as well as various security and privacy functions. A UserPlane Location Protocol (ULP) is a protocol-level instantiation of the Lup Reference Point, used between the SLP and the SET, as described, for example, in “UserPlane Location Protocol,” Draft Version 2.0, OMA-TS-ULP-V2—0-20100429-D (Apr. 29, 2010), the subject matter of which is hereby incorporated by reference.
SUPL enables a client of a location service to request notification of the location of a SET in response to conditional triggers, as discussed above. For example, a conditional trigger may correspond the SET entering or leaving a specified region or occurrence of a specified time or time interval. As discussed above, the location of the SET may be determined, for example, by a server or other network node, using positioning measurements from GNSS satellites received by a GNSS receiver of the SET, and/or using positioning measurements from terrestrial positioning systems. Generally, the SLP is responsible for establishing and maintaining the conditional triggers in the SET, which then acts autonomously to detect the trigger events that meet the conditions of the conditional triggers. Once a trigger event is detected, the SET contacts the SLP, the position of the SET is determined, and the location client is notified of the location of the SET.
Conventional SUPL designs require one or more SLP nodes of the SLP to maintain the state necessary to identify the triggered session and to implement the conditional trigger and corresponding location determination. Since the SLP manages numerous SETs, the SLP must maintain numerous corresponding triggered session states. Even with modern storage capacities, this represents a challenge for the SLP from the state persistence perspective.
In a representative embodiment, a method is provided for maintaining session state in a Secure User Plane Location (SUPL) enabled system during a triggered session. The method includes modifying at least one parameter of a session message to include state data indicating the session state; transmitting a request to a SUPL Enabled Terminal (SET) to initiate the triggered session, the request including the session message having the at least one modified parameter to be stored at the SET; and receiving a triggered message from the SET in response to occurrence of a trigger event detected by the SET, the triggered message including the stored state data. The triggered session is identified using the state data received in the triggered message.
In another representative embodiment, a computer readable medium is provided for storing code executable by a computer processor for maintaining session state in a SUPL enabled system during a triggered session. The computer readable medium includes modifying code segment, transmitting code segment, receiving code segment, and identifying code segment. The modifying code segment is for modifying at least one parameter of a session message to include state data indicating the session state. The transmitting code segment is for enabling transmission of a request to a SET to initiate the triggered session, the request including the session message having the at least one modified parameter to be stored at the SET. The receiving code segment is for receiving a triggered message from the SET in response to occurrence of a trigger event detected by the SET, the triggered message including the stored state data. The identifying code segment is for identifying the triggered session using the state data received in the triggered message.
In another representative embodiment, a method is provided for maintaining session state in a SUPL enabled system during a triggered session, without a SUPL Location Platform (SLP) maintaining state necessary to identify the triggered session, The method includes setting free bits of a SlpSessionID parameter in a session message to include state data indicating the session state; transmitting the session message to a SUPL Enabled Terminal (SET) to initiate the triggered session, the SET storing the free bits of the SlpSessionID; receiving a SUPL POS INIT message from the SET upon occurrence of a trigger event to initiate position determination as part of the triggered session, the SUPL POS INIT message comprising the stored state data; identifying the triggered session using the stored state data in the SUPL POS INIT message; and exchanging SUPL POS messages with the SET, with at least one SUPL POS message including position data indicating a location of the SET. An estimated position of the SET is calculated using the position data in the SUPL POS message.